package fr.istic.linkedcv.client.services;

import java.util.List;
import java.util.Map;

import com.google.gwt.user.client.rpc.AsyncCallback;

import fr.istic.linkedcv.client.GroupesCli;
import fr.istic.linkedcv.client.MessageCli;
import fr.istic.linkedcv.client.PersonneCli;

public interface PersonneServiceAsync {

	void addPersonne(Map<String, String> pers, AsyncCallback<Boolean> callback);

	void getListePersonnes(AsyncCallback<List<PersonneCli>> callback);

	void login(Map<String, String> pers, AsyncCallback<Boolean> callback);

	void isLogged(AsyncCallback<Boolean> callback);

	void createGroupe(Map<String, String> groupe,
			AsyncCallback<Boolean> callback);

	void getListeGroupes(AsyncCallback<List<GroupesCli>> callback);

	void myAccount(AsyncCallback<PersonneCli> callback);

	void addFriend(String friendName, AsyncCallback<Boolean> callback);

	void getFriends(AsyncCallback<List<PersonneCli>> callback);

	void logout(AsyncCallback<Boolean> callback);

	void exitGroupe(String groupeName, AsyncCallback<Boolean> callback);

	void deleteFriend(String friendName, AsyncCallback<Boolean> callback);


	void envoyerMessageToFriend(Map<String, String> message, String friendName,
			AsyncCallback<Boolean> callback);

	void envoyerMessageToAllFriends(Map<String, String> message,
			AsyncCallback<Boolean> callback);

	void seeMessages(AsyncCallback<List<MessageCli>> callback);

}
